package com.dudu.service.impl;

import org.apache.commons.lang.StringUtils;
import org.mortbay.log.Log;

import com.dudu.utils.Encrypt;
import com.dudu.service.ICheckValidityService;

import core.CoreService;
/**
 * 验证有效性实现方法
 * @author 危东
 * @date 2016-4-20
 */
public class CheckValidityServiceImpl implements ICheckValidityService {

	/**
	 * 账号验证工具方法，用于验证账号标识和验证码的正确性
	 * @param identify 账号标识
	 * @param key 秘钥-正确的秘钥
	 * @param timestamp 时间戳
	 * @param sign 加密串
	 * @return
	 */
	@Override
	public boolean toolsCheckSign(String identify, String key, String timestamp, String sign) {
		//返回的校验账号验证码正确性参数
		boolean isTrue = false;
		// 判断参数是否为空
		if (StringUtils.isNotBlank(timestamp)&& StringUtils.isNotBlank(sign)) {
			// 判断账号是否为空
			if (StringUtils.isNotBlank(key)) {
				// 获取账号临时秘钥
				String tempKey = key;
				// 获取账号标识
				String tempIdentify = identify;
				// 根据获取的秘钥获取认证码，并比较认证码
				if (StringUtils.isNotBlank(tempKey)) {
					// 获取根据加密算法加密后的串
					String signResult = Encrypt.sha1Encrypt(tempIdentify + tempKey + timestamp);
					CoreService.log.error(signResult);
					CoreService.log.info("app_key="+tempIdentify+";tempKey="+tempKey+";timestamp="+timestamp+";sgin="+signResult);
					// 对比用户传入的加密串
					if (sign.equalsIgnoreCase(signResult)) {
						isTrue = true;
					}
				}
			}
		}

		return isTrue;
	}

}
